// 测试异步
const Promise = require('../promise.js');

const promise = new Promise((resolve, reject) => {
  /**
   * 你会发现此事 resolve 并没有执行，因为 then 不会等待 setTimeout 执行完毕，才会执行（事件循环）。
   * 所以 this.value 此时是一个pending 的状态，那这个时候，就需要收集一下这些处于pending 状态的值
   * 等到执行到，之后，他就会从pending=》 其他状态，那这个时候，就需要一个队列来存储这些pending 的值。
   * 等 到状态更改，再调用 then 里的回掉。存=》 队列 状态更改=》 发布订阅
   */
  setTimeout(() => {
    resolve('异步成功');
  }, 1000);
});

promise.then(
  (res) => {
    console.log('res', res);
  },
  (err) => {
    console.log('test', err);
  }
);
